package com.cskaoyan.javase.oop1._8static._0introduction;

/**
 * @description: 用staic改造案例
 * @author: wuguidong@cskaoyan.onaliyun.com
 **/

/**
 * 使用static可以使用成员变量从对象所属,变为全体对象所共享
 * 语法:
 *      static + 普通成员变量构成静态成员变量
 *      [访问权限修饰符] static 返回值类型 方法名(形参列表){
 *          //方法体
 *      } 构成静态成员方法
 *      静态成员方法和静态成员变量合起来称之为"静态成员",属于类,属于全体对象共享
 * 使用:
 *      1,静态成员变量和普通成员变量一样具有默认值,而且默认值是一样
 *      2,静态成员不属于对象,不应该使用对象名点访问,而是使用类名点访问(因为它属于类)
 *      3,静态成员的访问不依赖于对象,而是在类加载时期完成创建并且能够被使用的
 *
 *
 */
public class NewDemo {
    public static void main(String[] args) {
        WangDaoStudent s = new WangDaoStudent();
        //Static member 'com.cskaoyan.javase.oop1._8static._0introduction.WangDaoStudent.schoolName' accessed via instance reference
        //通过对象引用去访问静态成员(这种方式不好,所以报黄色)
        //System.out.println(s.schoolName); //null
        System.out.println(WangDaoStudent.schoolName);
        WangDaoStudent.schoolName = "C++训练营";
        System.out.println(s.schoolName);
    }
}
class WangDaoStudent{
    //静态成员变量schoolName
    static String schoolName = "王道";
}
